home *** CD-ROM | disk | FTP | other *** search
- package javax.swing.text.html;
-
- import javax.swing.text.AttributeSet;
- import javax.swing.text.Document;
- import javax.swing.text.Element;
- import javax.swing.text.ElementIterator;
-
- class HTMLDocument$LeafIterator extends HTMLDocument.Iterator {
- private int endOffset;
- private HTML.Tag tag;
- private ElementIterator pos;
-
- HTMLDocument$LeafIterator(HTML.Tag var1, Document var2) {
- this.tag = var1;
- this.pos = new ElementIterator(var2);
- this.endOffset = 0;
- this.next();
- }
-
- public AttributeSet getAttributes() {
- Element var1 = this.pos.current();
- if (var1 != null) {
- AttributeSet var2 = (AttributeSet)var1.getAttributes().getAttribute(this.tag);
- return var2;
- } else {
- return null;
- }
- }
-
- public int getEndOffset() {
- return this.endOffset;
- }
-
- public int getStartOffset() {
- Element var1 = this.pos.current();
- return var1 != null ? var1.getStartOffset() : -1;
- }
-
- public HTML.Tag getTag() {
- return this.tag;
- }
-
- public boolean isValid() {
- return this.pos.current() != null;
- }
-
- public void next() {
- this.nextLeaf(this.pos);
-
- for(; this.isValid(); this.nextLeaf(this.pos)) {
- Element var1 = this.pos.current();
- if (var1.getStartOffset() >= this.endOffset) {
- AttributeSet var2 = this.pos.current().getAttributes();
- if (var2.isDefined(this.tag)) {
- this.setEndOffset();
- break;
- }
- }
- }
-
- }
-
- void nextLeaf(ElementIterator var1) {
- var1.next();
-
- while(var1.current() != null) {
- Element var2 = var1.current();
- if (var2.isLeaf()) {
- break;
- }
-
- var1.next();
- }
-
- }
-
- void setEndOffset() {
- AttributeSet var1 = this.getAttributes();
- this.endOffset = this.pos.current().getEndOffset();
- ElementIterator var2 = (ElementIterator)this.pos.clone();
- this.nextLeaf(var2);
-
- while(var2.current() != null) {
- Element var3 = var2.current();
- AttributeSet var4 = (AttributeSet)var3.getAttributes().getAttribute(this.tag);
- if (var4 == null || !var4.equals(var1)) {
- break;
- }
-
- this.endOffset = var3.getEndOffset();
- this.nextLeaf(var2);
- }
-
- }
- }
-